﻿<%@ WebHandler Language="C#" Class="AjaxFileUpload" %>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;

public class AjaxFileUpload : IHttpHandler {

    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.Files.Count > 0)
        {
            //string idExpediente = context.Request["idExpediente"];

            string path = context.Server.MapPath("~/Archivos/" );
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);

            var file = context.Request.Files[0];

            string fileName;

            if (HttpContext.Current.Request.Browser.Browser.ToUpper() == "IE")
            {
                string[] files = file.FileName.Split(new char[] { '\\' });
                fileName = files[files.Length - 1];
            }
            else
            {
                fileName = file.FileName;
            }

            string strFileName = fileName;

            string formato = "";
            string nombreArchivo = "";
            string nuevoNombre = "";

            formato = fileName.Split('.')[1];
            nombreArchivo = fileName.Split('.')[0];

            fileName = Path.Combine(path, fileName);

            string nroFecha = DateTime.Now.ToString("ddMMyyyyhmm");

            if (File.Exists(fileName))
            {
                nombreArchivo = nombreArchivo + nroFecha;
                nuevoNombre = nombreArchivo + "." + formato;
                strFileName = nombreArchivo + "." + formato;

                fileName = Path.Combine(path, nuevoNombre);
                file.SaveAs(fileName);
            }
            else
            {
                file.SaveAs(fileName);
            }


            string msg = "{";
            msg += string.Format("error:'{0}',\n", string.Empty);
            msg += string.Format("msg:'{0}'\n", strFileName);
            msg += "}";
            context.Response.Write(msg);
        }
    }

    public bool IsReusable
    {
        get
        {
            return true;
        }
    }

}